package com.woniu.liuzhougov.itemAndTask.dao;

import com.woniu.liuzhougov.itemAndTask.pojo.ItemTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/*
**
 * @Author Wuyuzhong
 * @Description 子任务数据访问对象
 * @Date 2019/4/19 15:52
 **/
@Mapper
public interface ItemTaskMapper {
    /*
    **
     * @Author Wuyuzhong
     * @Description 新增数据访问对象
     * @Date 2019/4/19 15:54
     * @Param [itemTask]
     * @return int
     **/
    int addTask(ItemTask itemTask);

    /*
    **
     * @Author Wuyuzhong
     * @Description 通过事项id查询该事项所有子任务
     * @Date 2019/4/19 15:58
     * @Param []
     * @return java.util.List<com.woniu.liuzhougov.itemAndTask.pojo.ItemTask>
     **/
    List<ItemTask> seachTaskByItemId(Integer itemId);

    /*
    **
     * @Author Wuyuzhong
     * @Description 通过id查找子事件
     * @Date 2019/4/19 16:02
     * @Param [taskId]
     * @return com.woniu.liuzhougov.itemAndTask.pojo.ItemTask
     **/
    ItemTask searchTaskById(Integer taskId);
    
    /*
    **
     * @Author Wuyuzhong
     * @Description 更新子任务
     * @Date 2019/4/19 16:04
     * @Param [itemTask]
     * @return int
     **/
    int updateTask(ItemTask itemTask);
    
    /*
    **
     * @Author Wuyuzhong
     * @Description 删除子任务
     * @Date 2019/4/19 16:05
     * @Param [itemTaskId]
     * @return int
     **/
    int deleteByPrimaryKey(Integer itemTaskId);

    /*
    **
     * @Author Wuyuzhong
     * @Description 更新子任务状态
     * @Date 2019/4/19 16:23
     * @Param [itemTaskId, taskStateId]
     * @return int
     **/
    int updateTaskState(Integer itemTaskId,Integer taskStateId);

    /*
    **
     * @Author Wuyuzhong
     * @Description 按事项id查询子任务状态，返回未完成 的子任务个数（1 为未完成 2为已完成）
     * @Date 2019/4/24 17:12
     * @Param [itemId]
     * @return int
     **/
    int countTaskState(Integer itemId);
    
    /*
    **
     * @Author Wuyuzhong
     * @Description 软删除，按照事项id设所有子任务flag为1
     * @Date 2019/4/24 17:31
     * @Param [itemId]
     * @return int
     **/
    int setFlagToOne(Integer itemId);

    /*
    **
     * @Author Wuyuzhong
     * @Description 通过执行人id获取子任务列表
     * @Date 2019/4/28 14:25
     * @Param [workerId]
     * @return java.util.List<com.woniu.liuzhougov.itemAndTask.pojo.ItemTask>
     **/
    List<ItemTask> seachTaskByWorkerId(Integer workerId);

    int insert(ItemTask record);

    int insertSelective(ItemTask record);

    ItemTask selectByPrimaryKey(Integer itemTaskId);

    int updateByPrimaryKeySelective(ItemTask record);

    int updateByPrimaryKey(ItemTask record);
}